/** 数据操作模块 */
import {
  COUNTER_INCREMENT,
  COUNTER_DECREMENT
} from './counterType'

// state：reducer中操作state数据
// 如果是基本类型数据，直接修改然后返回state即可
// 如果是对象数据，修改属性之后一定要解构重新赋值再返回，如果直接返回修改的对象可能导致页面不刷新
// 对象数据修改属性，不会在内存中创建新的对象|保持原有对象地址不会变化
function counterReducer(state = 0, creator) {
  switch (creator.type) {
    case COUNTER_INCREMENT:
      state += creator.data
      console.log("reducer 增加数据", state)
      return state

    case COUNTER_DECREMENT:
      state -= creator.data
      console.log("reducer 减少数据", state)
      return state

    default:
      console.log("读取数据", state)
      return state
  }
}

export default counterReducer